home *** CD-ROM | disk | FTP | other *** search
- #include <stdio.h>
- #include <fcntl.h>
- #include <sys/types.h>
- #include <time.h>
- #include "lutil.h"
- #include "config.h"
-
- unsigned long sequencer(void)
- {
- FILE *fp;
- struct flock fl;
- unsigned long id;
-
- time((time_t*)&id);
-
- if ((fp=fopen(sequence,"r+")) == NULL)
- fp=fopen(sequence,"w");
- if (fp == NULL) return id;
- fl.l_type=F_WRLCK;
- fl.l_whence=0;
- fl.l_start=0L;
- fl.l_len=0L;
- fcntl(fileno(fp),F_SETLKW,&fl);
- fscanf(fp,"%lu",&id);
- rewind(fp);
- fprintf(fp,"%lu\n",++id);
- fclose(fp);
-
- return id;
- }
-